MSXマガジン標準ミュージックドライバー[MuSICA]
(C) Ascii corporation / 1990
独自の解析情報に、「MuSICA ドライバー部 音楽データ 仕様書」からの引用を加えた非公式文書です。
音源 | 番号範囲 | 個数 |
---|---|---|
OPLL | 0 ~ 99 | 100個 |
PSG | 0 ~ 29 | 30個 |
SCC | 0 ~ 49 | 50個 |
offset | size | 内容 |
---|---|---|
+0000H | 8 * 100 = 800 bytes | OPLL 音色名 テーブル |
+0320H | 8 * 30 = 240 bytes | PSG 音色名 テーブル |
+0410H | 8 * 50 = 400 bytes | SCC 音色名 テーブル |
+05A0H | 8 * 100 = 800 bytes | OPLL 音色データ テーブル |
+08C0H | 8 * 30 = 240 bytes | PSG 音色データ テーブル |
+09B0H | 36 * 50 = 1800 bytes | SCC 音色データ テーブル |
合計 10B8H = 4280バイト
1つの音色データは8バイトで構成されます。
OPLL(YM2413)のレジスタ00H~07Hの順に設定されます。
ofs. | C/M | bit7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
---|---|---|---|---|---|---|---|---|---|
+0 | (M) | AM | VIB | EG | KSR | MULtiple | |||
+1 | (C) | AM | VIB | EG | KSR | MULtiple | |||
+2 | (M) | KSL | Total Level | ||||||
+3 | (C) | KSL | 0 | DC | DM | FeedBack(M) | |||
+4 | (M) | Attack Rate | Decay Rate | ||||||
+5 | (C) | Attack Rate | Decay Rate | ||||||
+6 | (M) | Sustain Level | Release Rate | ||||||
+7 | (C) | Sustain Level | Release Rate |
(M): Modulator
(C): Carrier
Multiple値と周波数倍率の関係について、
特殊なものは、0(半分)、10と11(10倍)、12と13(12倍)、14と15(15倍)。
それ以外は指定値通りの倍率。
[BUG] MuSICAの音色エディタではDCとDMが入れ替わっているバグあり
ofs | size | bit | name | long name | 補足 |
---|---|---|---|---|---|
+0 | 1 | 7 | AM (M) | Amplitude Modulation | (M) 音量ビブラート |
1 | 6 | VB (M) | Vibrato | (M) 音程ビブラート | |
1 | 5 | EG (M) | EG Type | (M) 1なら減衰音 | |
1 | 4 | KSR(M) | Key Scale Rate | (M) 音程が高いほど変化が速い | |
4 | 3-0 | MUL(M) | Multiple | (M) 周波数倍率 | |
+1 | 1 | 7 | AM (C) | Amplitude Modulation | (C) 音量ビブラート |
1 | 6 | VB (C) | Vibrato | (C) 音程ビブラート | |
1 | 5 | EG (C) | EG Type | (C) 1なら減衰音 | |
1 | 4 | KSR(C) | Key Scale Rate | (C) 音程が高いほど変化が速い | |
3 | 3-0 | MUL(C) | Multiple | (C) 周波数倍率 | |
+2 | 2 | 7-6 | KSL(M) | Key Scale Level | (M) 音程が高いほど出力が減衰 |
6 | 5-0 | TL (M) | Total Level | (M) 出力を減衰 | |
+3 | 2 | 7-6 | KSL(C) | Key Scale Level | (C) 音程が高いほど出力が減衰 |
1 | 5 | 0 | --- | (-) 常に0 | |
1 | 4 | DC (C) | Distortion (C) | (C) 半波整流 | |
1 | 3 | DM (M) | Distortion (M) | (M) 半波整流 | |
3 | 2-0 | FB (M) | FeedBack | (M) フィードバック | |
+4 | 4 | 7-4 | AR (M) | Attack Rate | (M) アタックレート |
4 | 3-0 | DR (M) | Decay Rate | (M) ディケィレート | |
+5 | 4 | 7-4 | AR (C) | Attack Rate | (C) アタックレート |
4 | 3-0 | DR (C) | Decay Rate | (C) ディケィレート | |
+6 | 4 | 7-4 | SL (M) | Sustain Level | (M) サスティンレベル |
4 | 3-0 | RR (M) | Release Rate | (M) リリースレート | |
+7 | 4 | 7-4 | SL (C) | Sustain Leve | (C) サスティンレベル |
4 | 3-0 | RR (C) | Release Rate | (C) リリースレート |
1つの音色データは6バイトで構成されます。
VCDファイルでは切りの良いように8バイト単位で配置されます。
(2バイトは余白になります)
オフセット | 内容 |
---|---|
+0 | ソフトウェアエンベロープのアタックタイム |
+1 | ソフトウェアエンベロープのディケイタイム |
+2 | ソフトウェアエンベロープのサスティンレベル |
+3 | ソフトウェアエンベロープのリリースタイム |
+4 | ノイズの周波数 |
+5 | トーン及び、ノイズのオン・オフ制御 |
(01H = Tone off | |
+6 | 空き |
+7 | 空き |
アタック、ディケイ、リリースは上位4ビットでカウンター、下位4ビットで音量の変化量を指定します。
それぞれ値のとる範囲は1~15です。
たとえば、カウンターの値が1で変化量が2の場合、
1カウント(60分の1秒)で音量が2ずつ変化していく。
サスティンレベルは0~15で指定します。
ノイズの周波数は0~31で指定します。
トーンおよび、ノイズのオン・オフ制御は、
ビット0でトーンを指定。
ビット3でノイズを指定。
ビットが0のときオン。
ビットが1のときオフ。
その他のビットは0を指定しなければなりません。
Editor(Decimal) : Dump(0xHexadecimal)
AR DR SL RR NF T N : at dt sl rt nz sw xx xx
-----------------------------------------------
00 00 00 00 00 off off: F1 F1 00 F1 00 09 00 00
01 01 01 01 01 on off: C1 C1 01 C1 01 08 00 00
02 02 02 02 02 on off: A1 A1 02 A1 02 08 00 00
03 03 03 03 03 on off: 91 91 03 91 03 08 00 00
04 04 04 04 04 on off: 81 81 04 81 04 08 00 00
05 05 05 05 05 on off: 71 71 05 71 05 08 00 00
06 06 06 06 06 on off: 61 61 06 61 06 08 00 00
07 07 07 07 07 on off: 51 51 07 51 07 08 00 00
08 08 08 08 08 on off: 41 41 08 41 08 08 00 00
09 09 09 09 09 on off: 72 72 09 72 09 08 00 00
00 00 00 00 00 on off: 31 31 0A 31 0A 08 00 00
11 11 11 11 11 on off: 52 52 0B 52 0B 08 00 00
12 12 12 12 12 on off: 21 21 0C 21 0C 08 00 00
13 13 13 13 13 on off: 53 53 0D 53 0D 08 00 00
14 14 14 14 14 on off: 32 32 0E 32 0E 08 00 00
15 15 15 15 15 on off: 43 43 0F 43 0F 08 00 00
16 16 15 16 16 on off: 11 11 0F 11 10 08 00 00
17 17 15 17 17 on off: 34 34 0F 34 11 08 00 00
18 18 15 18 18 on off: 23 23 0F 23 12 08 00 00
19 19 15 19 19 on off: 35 35 0F 35 13 08 00 00
20 20 15 20 20 on off: 12 12 0F 12 14 08 00 00
21 21 15 21 21 on off: 25 25 0F 25 15 08 00 00
22 22 15 22 22 on off: 13 13 0F 13 16 08 00 00
23 23 15 23 23 on off: 27 27 0F 27 17 08 00 00
24 24 15 24 24 on off: 14 14 0F 14 18 08 00 00
25 25 15 25 25 on off: 15 15 0F 15 19 08 00 00
26 26 15 26 26 on off: 16 16 0F 16 1A 08 00 00
27 27 15 27 27 on off: 17 17 0F 17 1B 08 00 00
28 28 15 28 28 on off: 18 18 0F 18 1C 08 00 00
29 29 15 29 29 on off: 19 19 0F 19 1D 08 00 00
30 30 15 30 30 on off: 1A 1A 0F 1A 1E 08 00 00
31 31 15 31 31 on off: 1C 1C 0F 1C 1F 08 00 00
32 32 15 32 31 on on : 1F 1F 0F 1F 1F 00 00 00
*at/dt/rt: frame|value
... 1FH -> add(or sub) 15 per 1 frame
... 11H -> add(or sub) 1 per 1 frame
... F1H -> add(or sub) 1 per 15 frame
*AR: Attack Rate
*DR: Decay Rate
*SL: Sustain Level (Volume value)
*RR: Release Rate
*NF: Noise Freq. register value
1つの音色データは36バイトで構成されます。
オフセット | 内容 |
---|---|
+0 | ソフトウェアエンベロープのアタックタイム |
+1 | ソフトウェアエンベロープのディケイタイム |
+2 | ソフトウェアエンベロープのサスティンレベル |
+3 | ソフトウェアエンベロープのリリースタイム |
+4~+35 | 波形データ |
ソフトウェアエンベロープはPSG音源と同様です。
波形データは、符号付8ビットの振幅データが32個で1周期を構成します。
チャンネル4、5はハードウェアの都合上同じデータを使用するため、後で設定された波形データが有効になります。
+4: 80H = -127
81H = -126
...
FEH = -2
FFH = -1
00H = 0
01H = +1
02H = +2
...
7EH = +126
+35: 7FH = +127